package vista;
import java.awt.Dialog.ModalityType;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.ImageIcon;
import javax.swing.JButton;

import javax.swing.JDialog;

import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;


import javax.swing.table.AbstractTableModel;

import util.Utilidades;


import modelo.Cliente;
import modelo.Status;

import modelo.Sucursal;
import modelo.dao.Servidor;

import com.cloudgarden.layout.AnchorConstraint;

/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class DlgGestionarSucursal extends javax.swing.JDialog {
	private JScrollPane jScrollPane1;
	private JTextField txtNombre;
	private JButton btIncluir;
	private JButton btModificar;
	private JButton btEliminar;
	private JButton btVer;
	private JButton btSalir;
	private JLabel jLabel1;
	private JLabel lblCodigo;
	private JTextField txtCodigo;
	private JLabel lblNombre;
	private JTable tbSucursales;
	private ArrayList<Sucursal> sucursales;
	private AbstractTableModel tbSucursalesModel;
	private Cliente cliente=null;
	
	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
		} catch(Exception e) {
			e.printStackTrace();
		}
	}


	
	
	public DlgGestionarSucursal(JDialog dialog,Cliente cli) {
		super(dialog);
		cliente=cli;
		initGUI();
	}
	
	private void initGUI() {
		try {
			{  
				getContentPane().setLayout(null);
				this.setTitle("Gestionar Sucursal");
				{ 
					jScrollPane1 = new JScrollPane();
					getContentPane().add(jScrollPane1);
					jScrollPane1.setBounds(60, 129, 382, 154);
					{	
						sucursales = Servidor.clientes().consultarSucursalesPorClienteYStatus(cliente.getCodigo(), Status.ACTIVO);
						
						tbSucursalesModel = new AbstractTableModel() {
							@Override
							public Object getValueAt(int fil, int col) {
								switch (col) {
								case 0: return  sucursales.get(fil).getDescripcion();
							
								}
								
								return null;
							}
							
							@Override
							public int getRowCount() {
								return sucursales.size();
							}
							
							@Override
							public String getColumnName(int col) {
								switch (col) {
								case 0: return "Sucursal";
								}
								
								return null;
							}
							@Override
							public int getColumnCount() {
								return 1;
							}
						};
						tbSucursales = new JTable();
						jScrollPane1.setViewportView(tbSucursales);
						tbSucursales.setModel(tbSucursalesModel);
						tbSucursales.setBounds(86, 128, 261, 73);
					}
				}

				
				{
					txtNombre = new JTextField();
					getContentPane().add(txtNombre);
					txtNombre.setBounds(133, 52, 213, 28);
					txtNombre.setEnabled(false);
				}
				{
					lblNombre = new JLabel();
					getContentPane().add(lblNombre);
					lblNombre.setText("Cliente:");
					lblNombre.setFont(new java.awt.Font("Tahoma",1,11));
					lblNombre.setBounds(60, 59, 61, 14);
				}
				{
					txtCodigo = new JTextField();
					getContentPane().add(txtCodigo);
					txtCodigo.setBounds(189, 15, 154, 28);
					txtCodigo.setEnabled(false);
				}
				{
					lblCodigo = new JLabel();
					getContentPane().add(lblCodigo);
					lblCodigo.setText("Codigo del Cliente:");
					lblCodigo.setFont(new java.awt.Font("Tahoma",1,11));
					lblCodigo.setBounds(60, 22, 131, 14);
				}
				{
					jLabel1 = new JLabel();
					getContentPane().add(jLabel1);
					jLabel1.setText("Seleccionar Sucursal:");
					jLabel1.setFont(new java.awt.Font("Tahoma",1,11));
					jLabel1.setBounds(186, 103, 145, 14);
				}
				{
					btSalir = new JButton();
					getContentPane().add(btSalir);
					btSalir.setText("Salir");
					btSalir.setIcon(new ImageIcon(getClass().getClassLoader().getResource("iconos/Salir.gif")));
					btSalir.setVerticalTextPosition(JButton.BOTTOM);
					btSalir.setHorizontalTextPosition(JButton.CENTER);
					btSalir.setBounds(412, 331, 79, 40);
					
				}
				{
					btVer = new JButton();
					getContentPane().add(btVer);
					btVer.setText("Ver");
					btVer.setIcon(new ImageIcon(getClass().getClassLoader().getResource("iconos/Ver.png")));
					btVer.setVerticalTextPosition(JButton.BOTTOM);
					btVer.setHorizontalTextPosition(JButton.CENTER);
					btVer.setBounds(316, 331, 79, 40);
				}
				{
					btEliminar = new JButton();
					getContentPane().add(btEliminar);
					btEliminar.setText("Eliminar");
					btEliminar.setIcon(new ImageIcon(getClass().getClassLoader().getResource("iconos/eliminar.PNG")));
					btEliminar.setVerticalTextPosition(JButton.BOTTOM);
					btEliminar.setHorizontalTextPosition(JButton.CENTER);
					btEliminar.setBounds(220, 331, 79, 40);
				}
				{
					btModificar = new JButton();
					getContentPane().add(btModificar);
					btModificar.setText("Modificar");
					btModificar.setIcon(new ImageIcon(getClass().getClassLoader().getResource("iconos/Modificar.png")));
					btModificar.setVerticalTextPosition(JButton.BOTTOM);
					btModificar.setHorizontalTextPosition(JButton.CENTER);
					btModificar.setBounds(116, 331, 85, 40);
				}
				{
					btIncluir = new JButton();
					getContentPane().add(btIncluir);
					btIncluir.setText("Incluir");
					btIncluir.setIcon(new ImageIcon(getClass().getClassLoader().getResource("iconos/incluir.PNG")));
					btIncluir.setVerticalTextPosition(JButton.BOTTOM);
					btIncluir.setHorizontalTextPosition(JButton.CENTER);
					btIncluir.setBounds(19, 331, 79, 40);
				}
			}
			this.setSize(516, 430);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	DlgGestionarSucursal dgsuc=this;
	public void mostrarGestionarSucursales(JDialog dialog) {
		
		setLocationRelativeTo(null);
		txtCodigo.setText(cliente.getCodigo());
		txtNombre.setText(cliente.getNombre());
		
		btIncluir.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				DlgSucursal dsuc= new DlgSucursal(dgsuc);
					dsuc.mostrarIncluir(dgsuc,cliente);
					sucursales = Servidor.clientes().consultarSucursalesPorClienteYStatus(cliente.getCodigo(), Status.ACTIVO);
					tbSucursalesModel.fireTableDataChanged();
			}
		});
		
		btModificar.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				DlgSucursal dsuc= new DlgSucursal(dgsuc);
				   if(Utilidades.seleccion(tbSucursales, dgsuc, "Sucursal"))
					{  
					   int i=dgsuc.tbSucursales.getSelectedRow();
					   Sucursal suc=sucursales.get(i);
					   dsuc.mostrarModificar(dgsuc, suc);
				      tbSucursalesModel.fireTableRowsUpdated(i, i);
				    }
				  
			}
		});
		
		btEliminar.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				if(Utilidades.seleccion(tbSucursales, dgsuc, "Sucursal"))
					 {  
					   	int i=dgsuc.tbSucursales.getSelectedRow();
					    Sucursal suc=sucursales.get(i);
					    //Mensaje de verificacion
					   	int resp=JOptionPane.showConfirmDialog(dgsuc, "Esta seguro de eliminar el registro seleccionado ?", "Confirmar Eliminacion",JOptionPane.YES_NO_OPTION);
					   	if(resp==JOptionPane.YES_OPTION)
					   	{   suc.setStatus(suc.getStatus().INACTIVO);
					   		if(Servidor.clientes().modificarSucursal(suc)!=null)
					   		{
					   			JOptionPane.showMessageDialog(dgsuc, "Registro eliminado exitosamente","Eliminacion",JOptionPane.INFORMATION_MESSAGE);
					   			sucursales = Servidor.clientes().consultarSucursalesPorClienteYStatus(cliente.getCodigo(), Status.ACTIVO);
								tbSucursalesModel.fireTableDataChanged();
					   		}
					   		else
					   			JOptionPane.showMessageDialog(dgsuc, "EL registro no pudo ser eliminado","Eliminacion",JOptionPane.ERROR_MESSAGE);
					   	}
					 }	
			}
		});
		
		
		btVer.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				DlgSucursal dsuc= new DlgSucursal(dgsuc);
				   if(Utilidades.seleccion(tbSucursales, dgsuc, "Sucursal"))
					{ Sucursal suc=sucursales.get(dgsuc.tbSucursales.getSelectedRow());
				      dsuc.mostrarVer(dgsuc, suc);
				    }
			}
		});
		
		btSalir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
			dgsuc.dispose();
			}
		});
		
		this.setModalityType(ModalityType.APPLICATION_MODAL);
		setVisible(true);
	
	}
	
}
